iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
1
自我挑戰組

關於我的佛系SCSS開發系列 第 13

鐵人賽13天 @at-root

  • 分享至 

  • xImage
  •  

今天是第13天,不小心一看最近真的發懶懶嚴重,鐵人賽庫存竟然沒有剩幾篇囉,如果不先偷跑中秋看來就不用烤肉囉,蠻嚴重的副作用為了烤肉這幾天還是拚一點來寫一些庫存,今天要來講@at-root用法,這個用法可以說是非常好用,可以說一定要學

@at-root

//編譯前
.card__group {
  width: 100%;
  background-color: #ccc;
  .card__base {
    display: flex;
    .card__img {
      background-position: center;
      background-size: cover;
    }
    .card__textgroup {
      line-height: 1.2;
      .card__title {
        font-size: 30px;
      }
      .card__info {
        font-size: 18px;
        .card__btn {
          width: 80px;
          height: 30px;
        }
      }
    }
  }
}
//編譯後
.card__group {
  width: 100%;
  background-color: #ccc;
}
.card__group .card__base {
  display: flex;
}
.card__group .card__base .card__img {
  background-position: center;
  background-size: cover;
}
.card__group .card__base .card__textgroup {
  line-height: 1.2;
}
.card__group .card__base .card__textgroup .card__title {
  font-size: 30px;
}
.card__group .card__base .card__textgroup .card__info {
  font-size: 18px;
}
.card__group .card__base .card__textgroup .card__info .card__btn {
  width: 80px;
  height: 30px;
}

這個範例有寫了一個組件群組,真實情況會更加複雜,主要這時候可以透過@at-root去做降低編譯完層級,看這用法我們好像在第五天好像有看過類似例子,使用&的父層選取器,來降低層級,不過會不清楚層級之間的關係,這時候我們可以使用@at-root方式,適當讓把比較複雜結構可以脫離出來,脫離這個結構也可明確知道與其他組件關係,讓編譯出來CSS層數相對減少,@at-root說是非常方便,@at-root功能也不是每一個區塊都給他加好加滿,因為脫離會只剩下一層,如我們把卡片按鈕把它脫離出去,在閱讀上會以為他是一個共用樣式按鈕非客製,如果名子也是寫得像text-button這樣class,無法字面上理解是否客製,寫在卡片文字區塊裡面的按鈕的話,有可能認知上知道他會有可能是一個特殊設定按鈕,在卡片文字裡克制按鈕,以上舉例是採取一個比較片面方式去做解讀,實際狀況還是百百種,我們還是要依情形去做適當的脫離,優化我們編譯出來的結果,下面有一個只脫離部分編譯出來的結果
https://ithelp.ithome.com.tw/upload/images/20200928/20129692vIptbix99T.jpg

https://ithelp.ithome.com.tw/upload/images/20200928/20129692v1fZUsuSno.jpg


上一篇
鐵人賽12天 @debug
下一篇
鐵人賽14天Values
系列文
關於我的佛系SCSS開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言